package com.bnz.manager.service.impl;


import com.bnz.utils.PageUtils;
import com.bnz.utils.Query;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;


import com.bnz.manager.dao.BrandDao;
import com.bnz.manager.entity.BrandEntity;
import com.bnz.manager.service.BrandService;


@Service("brandService")
public class BrandServiceImpl extends ServiceImpl<BrandDao, BrandEntity> implements BrandService {

    /**
     * 条件查询带分页
     * @param params
     * @return
     */
    @Override
    public PageUtils queryPage(Map<String, Object> params) { // params包含前端传入的key。页数，每页数量
        // 1、构建查询条件
        QueryWrapper<BrandEntity> wrapper = new QueryWrapper<>();
        // 2、条件查询(前端传入的参数key) 获取查询参数
        Object key = params.get("key");
        // 2.1、判断前端传入人的key是名字还是首字母
        if (!StringUtils.isEmpty(key.toString())) { // 判断前端传入的参数不为空，转为字符串
            // 2.1.1、根据前端传入的key，进行模糊查询（名字，首字母） name,first_char与数据库字段名一致
            QueryWrapper<BrandEntity> like = wrapper.like("name", key)
                    .or().like("first_char", key)
                    .or().eq("id",key); // 根据品牌id查询
        }
        // 3、开始条件查询带分页
        IPage<BrandEntity> page = this.page(
                new Query<BrandEntity>().getPage(params),
                wrapper // 上述的条件（查询条件）
        );
        return new PageUtils(page);
    }

}